package com.wlz.dao;

import com.wlz.model.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author： wlz
 * @Date 2020/12/23 17:18
 * @description： TODO
 * @version: 1.0
 */

@Repository
public interface UserRepository extends MongoRepository<User,String> {

    /**
     *  根据 年龄查询
     * @param age
     * @return
     */
    List<User> findByAge(Integer age);

    /**
     * 根据地址查询带分页
     * @param age
     * @param pageable
     * @return
     */
    Page<User> findByAge(Integer age, Pageable pageable);

    /**
     *  模糊查询
     *
     *    查询指定的值在上面写注解。其中value是查询的条件，？0这个是占位符，对应着方法中参数中的第一个参数，如果对应的是第二个参数则为？1。
     *    fields是我们指定的返回字段，其中id是自动返回的，不用我们指定，json中{‘address’:1}的1代表true，也就是代表返回的意思
     *
     * @param age
     * @param pageable
     * @return
     */
    @Query(value = "{'name':?0},",fields = "{'name':1}")
    Page<User> findByAgeLike(Integer age,Pageable pageable);

}
